package com.lonely.purchase.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lonely.purchase.domain.dto.remainingmaterialinventory.*;
import com.lonely.purchase.domain.entity.SysRemainingMaterialInventory;
import com.lonely.purchase.domain.vo.remainingmaterialinventory.QueryRemainingMaterialInventoryPageVO;
import com.lonely.purchase.domain.vo.remainingmaterialinventory.QueryTypeInInventoryPageVO;
import com.lonely.purchase.domain.vo.remainingmaterialinventory.RemainingMaterialInventoryDetailVO;

import java.util.List;

/**
 * @author : 黄志标
 * @date: 2025/7/25 16:18
 * @description: 余料库存服务
 */
public interface IRemainingMaterialInventoryService extends IService<SysRemainingMaterialInventory> {

    /**
     * 余料库存分页查询
     *
     * @param queryDto
     * @return
     */
    Page<QueryRemainingMaterialInventoryPageVO> page(QueryRemainingMaterialInventoryPageDTO queryDto);

    /**
     * 批量删除
     *
     * @param batchRemoveDto
     */
    void batchRemove(BatchRemoveRemainingMaterialInventoryDTO batchRemoveDto);

    /**
     * 详情
     *
     * @param id
     * @return
     */
    RemainingMaterialInventoryDetailVO detail(Long id);

    /**
     * 编辑余料库存
     *
     * @param submitDto
     */
    void submit(RemainingMaterialInventorySubmitDTO submitDto);

    /**
     * 录入库存时物料库存分页列表
     *
     * @param pageDto
     * @return
     */
    Page<QueryTypeInInventoryPageVO> queryTypeInMaterialInventoryPage(QueryTypeInMaterialInventoryPageDTO pageDto);

    /**
     * 录入库存
     *
     * @param typeInInventorys
     */
    void typeInRemainingMaterialInventory(List<TypeInMaterialInventorySubmitDTO> typeInInventorys);

}
